<script setup lang="ts">
import { onErrorCaptured } from 'vue'
import { ElMessage } from 'element-plus'

// 全局错误处理
onErrorCaptured((err, instance, info) => {
  console.error('应用错误:', err)
  console.error('错误来源:', instance)
  console.error('错误信息:', info)
  
  // 显示友好的错误提示
  ElMessage.error('应用发生错误，请刷新页面重试')
  
  // 返回false表示错误不会继续传播
  return false
})
</script>

<template>
  <router-view v-slot="{ Component }">
    <transition name="fade" mode="out-in">
      <component :is="Component" />
    </transition>
  </router-view>
</template>

<style lang="scss">
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.3s ease;
}

.fade-enter-from,
.fade-leave-to {
  opacity: 0;
}

/* 确保body和html有正确的样式 */
html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%;
}

#app {
  height: 100%;
  width: 100%;
}
</style>
